
import {
    AttributeEnum,
    HurtType,
    PlayerAttribute,
    TaskData,
    UnitAttribute,
    UnitShopType
} from "../frame/dataSource/DataModel";
import {UnitModel} from "../frame/apiModel/adapterModel/model3/UnitModel";

export interface Attrs {
    unitAttr: UnitAttribute,
    playerAttr: PlayerAttribute,
}
export interface AllUnitAttrs {
    originAttr: UnitAttribute;
    newestAttribute: UnitAttribute;
    extraAttr: UnitAttribute;
    subExtraAttr: UnitAttribute;
    whiteAttr: UnitAttribute
}
export enum CaluType {
    add = 1,
    sub,
    set,
}
export enum AttrType {
    extraAttr = 1,
    subExtraAttr,
    newestUnitAttr,
    originAttr,
    // 目前只用来计算技能效果表中thref字段时使用
    whiteAttr,
}
export enum RewardType {
    bag = 1,
    floor,
}
export enum LogType {
    error,
    warn,
    product,
    skillDev,
    attrDev,
    SysDev,
    dropDev,
    goodDev,
    taskDev,
    guiDev,
    saveDev,
    achievementDev,
    mixDev,
}
export enum GameType {
    orpg = 1,
    live,
}

export enum TaskDoneType {
    doing = 1,
    done = 2
}
export class VestJson {
    vestId: string;
    sourceUnit: UnitModel;
    effectId: string;
    effectLevel: number;
    hurtType: HurtType
}
export class TaskApplyData {
    // key 是击杀怪物的Id
    // killMap
    kMap: { [key: string]: number };
    // doneNum
    n: number;
    // doneType
    t: TaskDoneType;
    // 剩余时间
    l?: number;
}
export class StoreData {
    waveNum: number;
}
// 单位组合（羁绊） 第一层key是单位Id，第二层key是羁绊Id
export class UnitCombinationInfo {
    [key: string]: {
        [key: string]: boolean
    };
}
// 物品组合（套装） 第二层key是羁绊Id
export class CombinationInfo {
    [key: string]: CombitionRet
}

export class CombinationUIInfo {
    combinationIds: { [key: string]: CombitionRet };
    ids: { [key: string]: number }
}
export class MultiBoradRow {
    userName:  string;
    // heroName:  string;
    heroLevel: string;
    fightValue: string;
    // integral: string;
}
export enum OrderStr {
    attack = 'attack',
    attackground = 'attackground',
    move = 'move',
    stop = 'stop',
}
export enum EffectAnimation {
    attack = 'attack',
    birth = 'birth',
    death = 'death',
    decay = 'decay',
    dissipate = 'dissipate',
    stand = 'stand',
    spell = 'spell',
    walk = 'walk',
    portrait = 'portrait',
    parry = 'parry',
}

export enum AttackType {
    // 法术
    ATTACK_TYPE_NORMAL = 0,
    // 普通
    ATTACK_TYPE_MELEE,
    // 穿刺
    ATTACK_TYPE_PIERCE,
    // 攻城
    ATTACK_TYPE_SIEGE,
    // 魔法
    ATTACK_TYPE_MAGIC,
    // 混乱
    ATTACK_TYPE_CHAOS,
    // 英雄
    ATTACK_TYPE_HERO,
}
export enum WeaponType {
    normal = 2,
    hero = 8,
}
export enum ToastType {
    text,
    tip,
}
export enum MainAttr {
    STR = 'str',
    INT = 'int',
    AGI = 'agi'
}
export enum InputStr {
    uuid = 'uuid',
    userId = 'userId',
    compensateDecodeUserid = 'coDecUser',
    compensateDecodeUuid = 'coDecUu',
    addCarmeraHeight = '++',
    subCarmeraHeight = '--',
    hg = 'hg',

    // action
    closeAction = '819593594-close',
    changeAction = '819593594-change',
    getAction = '819593594-get',
    clearAction = 'ycRpg-clear',
    blacklist = '819593594-blacklist',
    whitelist = '819593594-whitelist',
    checkAction = '819593594-check',

    // name
    mode = 'mode',
    saveMode = 'saveMode',
    gui = 'gui',
    trackAttr = 'trackAttr',
    diff = 'diff',
    wave = 'wave',
    good = 'good',
    ach = 'ach',
    ability = 'ability',
    reward = 'reward',
    kill = 'kill',
    lv = 'lv',
    coin = 'coin',
    wood = 'wood',
    integral = 'integral',
    invincibility = 'invincibility',

    lockKey = 'lockKey',
}
export enum SpecielReward {
    clearLock = 'clearLock',
    integralCompensate = 'integralCompensate',
    freeExpCompensate = 'freeExpCompensate',
}
export interface ConditionCallBack {
    successFuns: (() => void)[];
    success: boolean;
}
export enum ChangeUnitType {
    hero = 1,
    box,
    other,
}
export interface TypeTaskRet {
    mainTask: TaskData[],
    teamTask: TaskData[],
    deputyTask: TaskData[],
    circulateTask: TaskData[],
    foreverTask: TaskData[]
}
export enum TargetType {
    /**地面*/ground = 2 ** 1,
    /**空中*/air = 2 ** 2,
    /**建筑*/structure = 2 ** 3,
    /**守卫*/ward = 2 ** 4,
    /**物品*/item = 2 ** 5,
    /**树木*/tree = 2 ** 6,
    /**墙*/wall = 2 ** 7,
    /**残骸*/ debris = 2 ** 8,
    /**装饰物*/decoration = 2 ** 9,
    /**桥*/bridge = 2 ** 10,
    //
    /**自己*/self = 2 ** 12,
    /**玩家单位*/player = 2 ** 13,
    /**联盟*/allies = 2 ** 14,
    /**中立*/neutral = 2 ** 15,
    /**敌人*/enemies = 2 ** 16,
    //
    /**可攻击的*/vulnerable = 2 ** 20,
    /**无敌*/invulnerable = 2 ** 21,
    /**英雄*/hero = 2 ** 22,
    /**非-英雄*/nonhero = 2 ** 23,
    /**存活*/alive = 2 ** 24,
    /**死亡*/dead = 2 ** 25,
    /**有机生物*/organic = 2 ** 26,
    /**机械类*/mechanical = 2 ** 27,
    /**非-自爆工兵*/nonsapper = 2 ** 28,
    /**自爆工兵*/sapper = 2 ** 29,
    /**非-古树*/nonancient = 2 ** 30,
    /**古树*/ancient = 2 ** 31,
    //不确定的
    /**别人*/notself = 2 ** 11,
    /**地形*/terrain = 2 ** 17,
    /**没有*/none = 2 ** 18,
    /**友军单位*/friend = 2 ** 19,
}
export interface MaterialInfo {
    id: string,
    num: number,
    deleteFun?: () => void,
    changeNumFun?: (num: number) => void,
}
export enum TaskApplyType {
    normal = 1,
    onlyFinsh,
    onlyApply
}
export enum ColorStr {
    gold = "|cffd9d919",
    lumber = "|cff20c000",//木材的颜色
    red = "|cffff0303",
    blue = "|cff0042ff",
    teal = "|cff1ce6b9",
    purple = "|cff540081",
    yellow = "|cfffffc00",
    orange = "|cfffe8a0e",
    green = "|cff20c000",
    pink = "|cffe55bb0",
    gray = "|cff959697",
    lightblue = "|cff7ebff1",
    darkgreen = "|cff106246",
    brown = "|cff4a2a04",
    maroon = "|cff9b0000",
    navy = "|cff0000c3",
    turquoise = "|cff00eaff",
    violet = "|cffbe00fe",
    wheat = "|cffebcd87",
    peach = "|cfff8a48b",
    mint = "|cffbfff80",
    lavender = "|cffdcb9eb",
    coal = "|cff282828",
    snow = "|cffebf0ff",
    emerald = "|cff00781e",
    peanut = "|cffa46f33",
    sheepblue = "|cff3f81f8",
    wolfred = "|cffc00040",
    string = "|cffce915b",
    number = "|cffdcdc8b",
    boolean = "|cff569cd6",
    white = "|cffffffff",
    handle = "|cff7ebff1",
    black = "|cff000000",
}
export interface ClearTimeObj {
    time: number;
    timeStamp: number;
}
export enum UnitPosition {
    HeadMount = 'Head Mount',// 坐骑的头
    HeadAlternate = 'Head Alternate', //变形后的头
    overhead = 'overhead',// 头上
    OverHeadAlternate = 'OverHead Alternate',// 变形后的头上
    origin = 'origin',// 脚底下
    OriginAlternate = 'Origin Alternate', // 变形后的脚底下
    Weapon = 'Weapon', // 武器
    WeaponLeft = 'Weapon Left',// 左边的武器
    WeaponRight = 'Weapon Right', // 右边的武器
    WeaponAlternate = 'Weapon Alternate', // 变形后的武器
    HandLeft = 'left,hand', // 左手
    HandRight = 'right,hand', // 右手
    HandLeftAlternate = 'Hand Left Alternate', // 变形后的左手
    HandRightAlternate = 'Hand Right Alternate', // 变形后的右手
    chest = 'chest', // 身体
    ChestAlternate = 'Chest Alternate', // 变形后的身体
    ChestMount = 'Chest Mount', // 坐骑的身体
    ChestMountLeft = 'Chest Mount Left', // 坐骑身体左侧
    ChestMountRight = 'Chest Mount Right', // 坐骑身体右侧
    FootLeft = 'Foot Left', // 左脚
    FootRight = 'Foot Right', // 右脚
    FootLeftRear = 'Foot Left Rear', // 左后脚
    FootRightRear = 'Foot Right Rear', // 右后脚
    FootLeftAlternate = 'Foot Left Alternate', // 变形后的左脚
    FootRightAlternate = 'Foot Right Alternate', // 变形后的右脚
    SpriteFirst = 'Sprite First', // 建筑或机械单位着火的附着点
    SpriteSecond = 'Sprite Second',
    SpriteThird = 'Sprite Third',
    spriteFourth = 'sprite fourth',
    SpriteFifth = 'Sprite Fifth',
    spriteFirstAlternate = 'sprite first Alternate', // 变形后的建筑或机械单位着火的附着点
    spriteSecondAlternate = 'sprite second alternate',
    spriteAhirdAlternate = 'sprite third alternate',
    spriteFourthAlternate = 'sprite fourth alternate',
    SpriteFifthAlternate = 'Sprite Fifth alternate',
    SpriteEattree = 'Sprite Eattree', // 吃树时，树的附着点
    spriteRallypoint = 'sprite rallypoint'//  建筑的集结点
}

export interface ItemShopInfo {
    id: string;
    type: UnitShopType;
    num: number;
    cl: number;
}

export enum keyBoradMap {
    VK_BACK =  8, //退格键
    VK_TAB =  9, //TAB键
    VK_RETURN =  13, //回车键
    VK_SHIFT =  16, //Shift键
    VK_CONTROL =  17, //Ctrl键
    VK_MENU =  18, //Alt键
    VK_PAUSE =  19, //Pause Break键
    VK_CAPITAL =  20, //Caps Lock键
    VK_ESC = 27,
    VK_SPACE =  32, //空格键
    VK_PRIOR =  33, //Page Up
    VK_NEXT =  34, //Page Down
    VK_END =  35, //End键
    VK_HOME =  36, //Home键
    VK_LEFT =  37, //方向键 = ←
    VK_UP =  38, //方向键 = ↑
    VK_RIGHT =  39, //方向键 = →
    VK_DOWN =  40, //方向键 = ↓
    VK_INSERT =  45, //Insert键
    VK_DELETE =  46, //Delete键
    
    //字母表
    VK_A =  65,
    VK_B =  66,
    VK_C =  67,
    VK_D =  68,
    VK_E =  69,
    VK_F =  70,
    VK_G =  71,
    VK_H =  72,
    VK_I =  73,
    VK_J =  74,
    VK_K =  75,
    VK_L =  76,
    VK_M =  77,
    VK_N =  78,
    VK_O =  79,
    VK_P =  80,
    VK_Q =  81,
    VK_R =  82,
    VK_S =  83,
    VK_T =  84,
    VK_U =  85,
    VK_V =  86,
    VK_W =  87,
    VK_X =  88,
    VK_Y =  89,
    VK_Z =  90,

    VK_LWIN =  91, //左徽标键
    VK_RWIN =  92, //右徽标键
    VK_APPS =  93, //鼠标右键快捷键
    VK_NUMPAD0 =  96, //小键盘0
    VK_NUMPAD1 =  97, //小键盘1
    VK_NUMPAD2 =  98, //小键盘2
    VK_NUMPAD3 =  99, //小键盘3
    VK_NUMPAD4 =  100, //小键盘4
    VK_NUMPAD5 =  101, //小键盘5
    VK_NUMPAD6 =  102, //小键盘6
    VK_NUMPAD7 =  103, //小键盘7
    VK_NUMPAD8 =  104, //小键盘8
    VK_NUMPAD9 =  105, //小键盘9
    VK_DECIMAL =  110, //小键盘.
    VK_MULTIPLY =  106, //小键盘*
    VK_ADDTRACT =  107, //小键盘+
    VK_SUBTRACT =  109, //小键盘-
    VK_DIVIDE =  111, //小键盘/

    VK_F1 =  112, //F1键
    VK_F2 =  113, //F2键
    VK_F3 =  114, //F3键
    VK_F4 =  115, //F4键
    VK_F5 =  116, //F5键
    VK_F6 =  117, //F6键
    VK_F7 =  118, //F7键
    VK_F8 =  119, //F8键
    VK_F9 =  120, //F9键
    VK_F10 =  121, //F10键
    VK_F11 =  122, //F11键
    VK_F12 =  123, //F12键

    VK_NUMLOCK =  144, //Num Lock键
    VK_SCROLL =  145, //Scroll Lock键
}
export enum AnimationStr {
    attack = 'attack',
    spell = 'spell'
}
export const BAllStr = 'bAllStr'

export enum SpecialEffectType {
    unit = 1,
    point,
}

export enum CaluAttrStr {
    init = 'init',
    ach = 'ach',
    ability = 'ability',
    pet = 'pet',
    effect = 'effect',
    summon = 'summon',
    good = 'good',
    revert = 'revert',
    poison = 'poison',
}

export enum BuffCode {
    invulnerable = 'Bvul'
}
export interface PathCache {
    order: OrderStr
    end: string;
}
export interface MixRet {
    mixId: string,
    funs: (() => void)[]
}
export interface CombitionRet {
    attrs: Attrs,
    effects: string[],
    successNum: number,
    currentNum: number,
}
export const enum OrderId{
    Absorb = 852529,
    Acidbomb = 852662,
    Acolyteharvest = 852185,
    Aimove = 851988,
    Ambush = 852131,
    Ancestralspirit = 852490,
    Ancestralspirittarget = 852491,
    Animatedead = 852217,
    Antimagicshell = 852186,
    Attack = 851983,
    Attackground = 851984,
    Attackonce=851985,
    Attributemodskill = 852576,
    Auraunholy = 852215,
    Auravampiric = 852216,
    Autodispel = 852132,
    Autodispeloff = 852134,
    Autodispelon = 852133,
    Autoentangle = 852505,
    Autoentangleinstant = 852506,
    Autoharvestgold = 852021,
    Autoharvestlumber = 852022,
    Avatar = 852086,
    Avengerform = 852531,
    Awaken = 852466,
    Banish = 852486,
    Barkskin = 852135,
    Barkskinoff = 852137,
    Barkskinon = 852136,
    Battleroar = 852099,
    Battlestations = 852099,
    Bearform = 852138,
    Berserk = 852100,
    Blackarrow = 852577,
    Blackarrowoff = 852579,
    Blackarrowon = 852578,
    Blight = 852187,
    Blink = 852525,
    Blizzard = 852089,
    Bloodlust = 852101,
    Bloodlustoff = 852103,
    Bloodluston = 852102,
    Board = 852043,
    Breathoffire = 852580,
    Breathoffrost = 852560,
    Build = 851994,
    Burrow = 852533,
    Cancel = 851976,
    Cannibalize = 852188,
    Carrionscarabs = 852551,
    Carrionscarabsinstant = 852554,
    Carrionscarabsoff = 852553,
    Carrionscarabson = 852552,
    Carrionswarm = 852218,
    Chainlightning = 852119,
    Channel = 852600,
    Charm = 852581,
    Chemicalrage = 852663,
    Cloudoffog = 852473,
    Clusterrockets = 852652,
    Coldarrows = 852244,
    Coldarrowstarg = 852243,
    Controlmagic = 852474,
    Corporealform = 852493,
    Corrosivebreath = 852140,
    Coupleinstant = 852508,
    Coupletarget = 852507,
    Creepanimatedead = 852246,
    Creepdevour = 852247,
    Creepheal = 852248,
    Creephealoff = 852250,
    Creephealon = 852249,
    Creepthunderbolt = 852252,
    Creepthunderclap = 852253,
    Cripple = 852189,
    Curse = 852190,
    Curseoff = 852192,
    Curseon = 852191,
    Cyclone = 852144,
    Darkconversion = 852228,
    Darkportal = 852229,
    Darkritual = 852219,
    Darksummoning = 852220,
    Deathanddecay = 852221,
    Deathcoil = 852222,
    Deathpact = 852223,
    Decouple = 852509,
    Defend = 852055,
    Detectaoe = 852015,
    Detonate = 852145,
    Devour = 852104,
    Devourmagic = 852536,
    Disassociate = 852240,
    Disenchant = 852495,
    Dismount = 852470,
    Dispel = 852057,
    Divineshield = 852090,
    Doom = 852583,
    Drain = 852487,
    Dreadlordinferno = 852224,
    Dropitem = 852001,
    Drunkenhaze = 852585,
    Earthquake = 852121,
    Eattree = 852146,
    Elementalfury = 852586,
    Ensnare = 852106,
    Ensnareoff = 852108,
    Ensnareon = 852107,
    Entangle = 852147,
    Entangleinstant = 852148,
    Entanglingroots = 852171,
    Etherealform = 852496,
    Evileye = 852105,
    Faeriefire = 852149,
    Faeriefireoff = 852151,
    Faeriefireon = 852150,
    Fanofknives = 852526,
    Farsight = 852122,
    Fingerofdeath = 852230,
    Firebolt = 852231,
    Flamestrike = 852488,
    Flamingarrows = 852174,
    Flamingarrowstarg = 852173,
    Flamingattack = 852540,
    Flamingattacktarg = 852539,
    Flare = 852060,
    Forceboard = 852044,
    Forceofnature = 852176,
    Forkedlightning = 852586,
    Freezingbreath = 852195,
    Frenzy = 852561,
    Frenzyoff = 852563,
    Frenzyon = 852562,
    Frostarmor = 852225,
    Frostarmoroff = 852459,
    Frostarmoron = 852458,
    Frostnova = 852226,
    Getitem = 851981,
    Gold2lumber = 852233,
    Grabtree = 852511,
    Harvest = 852018,
    Heal = 852063,
    Healingspray = 852664,
    Healingward = 852109,
    Healingwave = 852501,
    Healoff = 852065,
    Healon = 852064,
    Hex = 852502,
    Holdposition = 851993,
    Holybolt = 852092,
    Howlofterror = 852588,
    Humanbuild = 851995,
    Immolation = 852177,
    Impale = 852555,
    Incineratearrow = 852670,
    Incineratearrowoff = 852672,
    Incineratearrowon = 852671,
    Inferno = 852232,
    Innerfire = 852066,
    Innerfireoff = 852068,
    Innerfireon = 852067,
    Instant = 852200,
    Instant1 = 851991,
    Instant2 = 851987,
    Instant3 = 851975,
    Instant4 = 852019,
    Invisibility = 852069,
    Lavamonster = 852667,
    Lightningshield = 852110,
    Load = 852046,
    Loadarcher = 852142,
    Loadcorpse  =  852050,
    Loadcorpseinstant = 852053,
    Locustswarm = 852556,
    Lumber2gold = 852234,
    Magicdefense = 852478,
    Magicleash = 852480,
    Magicundefense = 852479,
    Manaburn = 852179,
    Manaflareoff = 852513,
    Manaflareon = 852512,
    Manashieldoff = 852590,
    Manashieldon = 852589,
    Massteleport = 852093,
    Mechanicalcritter = 852564,
    Metamorphosis = 852180,
    Militia = 852072,
    Militiaconvert = 852071,
    Militiaoff = 852073,
    Militiaunconvert = 852651,
    Mindrot = 852565,
    Mirrorimage = 852123,
    Monsoon = 852591,
    Mount = 852469,
    Mounthippogryph = 852143,
    Move = 851986,
    Moveslot1 = 852002,
    Moveslot2 = 852003,
    Moveslot3 = 852004,
    Moveslot4 = 852005,
    Moveslot5 = 852006,
    Moveslot6 = 852007,
    Nagabuild = 852467,
    Neutraldetectaoe = 852023,
    Neutralinteract = 852566,
    Neutralspell = 852630,
    Nightelfbuild = 851997,
    Orcbuild = 851996,
    Parasite = 852601,
    Parasiteoff = 852603,
    Parasiteon = 852602,
    Patrol = 851990,
    Phaseshift = 852514,
    Phaseshiftinstant = 852517,
    Phaseshiftoff = 852516,
    Phaseshifton = 852515,
    Phoenixfire = 852481,
    Phoenixmorph = 852482,
    Poisonarrows = 852255,
    Poisonarrowstarg = 852254,
    Polymorph = 852074,
    Possession = 852196,
    Preservation = 852568,
    Purge = 852111,
    Rainofchaos = 852237,
    Rainoffire = 852238,
    Raisedead = 852197,
    Raisedeadoff = 852199,
    Raisedeadon = 852198,
    Ravenform = 852155,
    Recharge = 852157,
    Rechargeoff = 852159,
    Rechargeon = 852158,
    Rejuvination = 852160,
    Renew = 852161,
    Renewoff = 852163,
    Renewon = 852162,
    Repair = 852024,
    Repairoff = 852026,
    Repairon = 852025,
    Replenish = 852542,
    Replenishlife = 852545,
    Replenishlifeoff = 852547,
    Replenishlifeon = 852546,
    Replenishmana = 852548,
    Replenishmanaoff = 852550,
    Replenishmanaon = 852549,
    Replenishoff = 852544,
    Replenishon = 852543,
    Request_hero = 852239,
    Requestsacrifice = 852201,
    Restoration = 852202,
    Restorationoff = 852204,
    Restorationon = 852203,
    Resumebuild = 851999,
    Resumeharvesting = 852017,
    Resurrection = 852094,
    Returnresources = 852020,
    Revenge = 852241,
    Revive = 852039,
    Roar = 852164,
    Robogoblin = 852656,
    Root = 852165,
    Sacrifice = 852205,
    Sanctuary = 852569,
    Scout = 852181,
    Scrollofspeed = 852285,
    Selfdestruct = 852040,
    Selfdestructoff = 852042,
    Selfdestructon = 852041,
    Sentinel = 852182,
    Setrally = 851980,
    Shadowsight = 852570,
    Shadowstrike = 852527,
    Shockwave = 852125,
    Silence = 852592,
    Skillmenu = 852000,
    Sleep = 852227,
    Slow = 852075,
    Slowoff = 852077,
    Slowon = 852076,
    Smart = 851971,
    Soulburn = 852668,
    Soulpreservation = 852242,
    Spellshield = 852571,
    Spellshieldaoe = 852572,
    Spellsteal = 852483,
    Spellstealoff = 852485,
    Spellstealon = 852484,
    Spies = 852235,
    Spiritlink = 852499,
    Spiritofvengeance = 852528,
    Spirittroll = 852573,
    Spiritwolf = 852126,
    Stampede = 852593,
    Standdown = 852113,
    Starfall = 852183,
    Stasistrap = 852114,
    Steal = 852574,
    Stomp = 852127,
    Stoneform = 852206,
    Stop = 851972,
    Stunned = 851973,
    Submerge = 852604,
    Summonfactory = 852658,
    Summongrizzly = 852594,
    Summonphoenix = 852489,
    Summonquillbeast = 852595,
    Summonwareagle = 852596,
    Tankdroppilot = 852079,
    Tankloadpilot = 852080,
    Tankpilot = 852081,
    Taunt = 852520,
    Thunderbolt = 852095,
    Thunderclap = 852096,
    Tornado = 852597,
    Townbelloff = 852083,
    Townbellon = 852082,
    Tranquility = 852184,
    Transmute = 852665,
    Unavatar = 852087,
    Unavengerform = 852532,
    Unbearform = 852139,
    Unburrow = 852534,
    Uncoldarrows = 852245,
    Uncorporealform = 852494,
    Undeadbuild = 851998,
    Undefend = 852056,
    Undivineshield = 852091,
    Unetherealform = 852497,
    Unflamingarrows = 852175,
    Unflamingattack = 852541,
    Unholyfrenzy = 852209,
    Unimmolation = 852178,
    Unload = 852047,
    Unloadall = 852048,
    Unloadallcorpses = 852054,
    Unloadallinstant = 852049,
    Unpoisonarrows = 852256,
    Unravenform = 852156,
    Unrobogoblin = 852657,
    Unroot = 852166,
    Unstableconcoction = 852500,
    Unstoneform = 852207,
    Unsubmerge = 852605,
    Unsummon = 852210,
    Unwindwalk = 852130,
    Useslot1 = 852008,
    Useslot2 = 852009,
    Useslot3 = 852010,
    Useslot4 = 852011,
    Useslot5 = 852012,
    Useslot6 = 852013,
    Vengeance = 852521,
    Vengeanceinstant = 852524,
    Vengeanceoff = 852523,
    Vengeanceon = 852522,
    Volcano = 852669,
    Voodoo = 852503,
    Ward = 852504,
    Waterelemental = 852097,
    Wateryminion = 852598,
    Web = 852211,
    Weboff = 852213,
    Webon = 852212,
    Whirlwind = 852128,
    Windwalk = 852129,
    Wispharvest = 852214,
}

export enum AttrPercentMap {
    mainAttrP = 'mainAttr',
    strP = 'strength',
    agiP = 'agile',
    intP = 'intellect',
    realHurtP = 'realHurt',
    attackP = 'attack',
    lawP = 'law',
    maxLifeP = 'maxLife',
    maxMagicP = 'maxMagic',
    defenseP = 'defense',
    magicResistanceP = 'magicResistance',
    lifeRecoveryP = 'lifeRecovery',
    magicRecoveryP = 'magicRecovery',
}

export enum FightBaseValueLevel {
    negative = -1,
    null = 0,
    tooLower = 0.001,
    lower = 0.01,
    low = 0.1,
    nomal = 1,
    mid = 2,
    high = 3,
    max = 10,
}

export interface BuffInfo {
    name: string;
    time: number;
    image: string;
    des: string;
}
export enum LearnSkillFailed {
    overMax = 1,
    isNull,
    autoLearn
}

export enum LevelUpType {
    none = 1,
    success,
    successButNone,
    failed,
    failedButNone,
    unChange,
}


